package com.aceitunaproject.shared.message;

import java.io.Serializable;
import java.util.Date;

/**
 * Base message interface
 * 
 * @author Maciej Miechowicz
 */
public interface Message extends Serializable {
	
	/**
	 * Message Type Property
	 * 
	 * @author Federico Bergstein
	 */
	public String getMessageType();
	
	/**
	 * Message ID Property get
	 * 
	 * Useful for logging and error reporting purposes 
	 * 
	 * @author Federico Bergstein
	 */
	public String getId();
	//TODO: Perhaps it shouldn't be a String?
	
	/**
	 * Message ID Property set
	 * 
	 * Useful for logging and error reporting purposes 
	 * 
	 * @author Federico Bergstein
	 */
	public void setId(String messageID);

	
	/**
	 * TimeStamp Property get
	 * 
	 * The UTC time when the message was sent. 
	 * 
	 * @author Federico Bergstein
	 */
	public Date getTimeStamp();

	/**
	 * TimeStamp Property set
	 * 
	 * The UTC time when the message was sent. 
	 * 
	 * @author Federico Bergstein
	 */
	public void setTimeStamp(Date timeStamp);

	
}
